Steering controller for precision farming

ABSTRACT

A steering controller can control steering of a vehicle and is suitable for precision farm controlling. The steering controller can rotate the steering shaft of the vehicle direct the vehicle on a desired path, for example, using a satellite positioning system. Components of the steering controller are environmental protected by a housing that has an opening extending between its front and rear surfaces. The opening is lined by a shaft. A hub located near the front of the opening can be coupled to the steering shaft of the vehicle. A motor has a stator fixed to the housing and a rotor fixed to the hub. When the housing is attached to a fixed location on the vehicle, the motor can rotate the steering shaft by rotating the hub with respect to the housing. A control module drives the motor based on commands from a guidance module.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation-in-part of and claims priority in U.S. patent application Ser. No. 13/754,656, filed Jan. 30, 2013, now U.S. Pat. No. 9,162,703, issued Oct. 202 2015, which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to the field of automated vehicle steering control and to a steering controller for precision farming.

2. Description of the Related Art

Agricultural operations can be improved if the locations of the implements performing the operations are accurately controlled. Satellite positioning systems, particularly those with local augmentation, can provide accurate location information. Systems for automatically steering agricultural tractors have been developed that use location information from satellite positioning systems to control implement location. Existing systems may have limited operating speeds. The operating speed may be reduced by dynamic limitations of the steering controllers used. Similar limitations exist in controlling the location of other vehicles.

SUMMARY OF THE INVENTION

In one aspect, the invention provides a steering controller for controlling steering of a vehicle, including: a housing having a cylindrical opening extending from a front surface of the housing to a rear surface of the housing, the cylindrical opening lined by a shaft; a hub disposed concentrically proximate the cylindrical opening proximate the front surface of the housing, the hub arranged for coupling to a steering shaft of the vehicle; a motor comprising a stator fixedly coupled to the housing and a rotor fixedly coupled to the hub; an encoder disk fixedly coupled to the hub; an angle encoder arranged to sense angular positions of the encoder disk; and a control module arranged to drive the motor based on commands from a guidance module and angular information form the angle encoder.

In another aspect, the invention provides a steering controller for controlling steering of a vehicle, including: a housing having a cylindrical opening extending from a front surface of the housing to a rear surface of the housing, the cylindrical opening lined by a shaft; a donut having an annular shape, the donut disposed around and rotatably coupled to the shaft; a hub disposed concentrically with the cylindrical opening proximate the front surface of the housing and fixedly coupled to the donut, the hub arranged for coupling to a steering shaft of the vehicle; a motor comprising a stator fixedly coupled to the housing and a rotor fixedly coupled to the donut; and a control module arranged to drive the motor based on commands from a guidance module, the control module including a monitor module configured to limit torque applied by the motor between the hub and the housing.

Other features and advantages of the present invention should be apparent from the following description which illustrates, by way of example, aspects of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The details of the present invention, both as to its structure and operation, may be gleaned in part by study of the accompanying drawings, in which like reference numerals refer to like parts, and in which:

FIG. 1 is a front perspective view of a steering controller in accordance with aspects of the invention.

FIG. 2 is a rear perspective view of the steering controller of FIG. 1.

FIG. 3 is a block diagram of aspects of system using a steering controller in accordance with aspects of the invention.

FIG. 4 is a cross-section of a steering controller in accordance with aspects of the invention.

FIGS. 5A and 5B show an exploded view of the steering controller of FIG. 4.

FIG. 6 is a plan view of a stator and a rotor in accordance with aspects of the invention.

FIG. 7 is a plan view and cross-section of a stator in accordance with aspects of the invention.

FIG. 8 is a functional block diagram of aspects of a controller module of a steering controller in accordance with aspects of the invention.

FIG. 9 is a perspective view of a paddle shifter assembly in accordance with aspects of the invention.

FIG. 10 is a side view of the paddle shifter assembly of FIG. 9 with the steering controller of FIG. 1 in accordance with aspects of the invention.

FIG. 11 is a flowchart diagramming a method of practicing an embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIGS. 1 and 2 are perspective views of a steering controller. FIG. 1 can be considered a front view and FIG. 2 a rear view. However, the terms front and rear (and similar directional terms) are used for descriptive purposes and do not denote any particular physical locations or orientations of the steering controller. Some descriptions of the steering controller reference use in agricultural equipment; however, the steering controller is useful in other applications, for example, marine vessels. The steering controller includes a steering wheel 105 and a drive assembly 120.

The steering controller may be mounted in a location similar to a manual steering wheel to control steering of a vehicle. The drive assembly 120 can be mounted to a fixed location on the vehicle. The mounting may be performed by attaching a rear surface 125 of steering controller to the fixed location. The fixed location is fixed in the sense that it does not move, for example, rotate, with steering of the vehicle. The drive assembly 120 includes a drive coupling 130 for attachment to a steering mechanism of the vehicle. The drive coupling 130, for example, may have a splined coupling for mating to a splined end of a steering shaft.

A motor in the drive assembly 120 has its stator fixedly coupled to the rear surface 125 and its rotor fixedly coupled to the drive coupling 130. The motor can thus rotate the drive coupling 130 relative the rear surface 125. With the rear surface 125 fixedly mounted to a fixed location in a vehicle and the drive coupling 130 attached to the steering mechanism of the vehicle, the steering controller can control the vehicle steering through rotation of the motor.

The drive assembly 120 has a guidance interface 133 for coupling to a guidance module. Via the guidance interface 133, the steering controller may be instructed how to steer the vehicle. For example, the steering controller may be instructed to rotate the steering to a particular location or rotate the steering at a particular angular velocity. The drive assembly 120 may also supply status information via the guidance interface 133.

The steering wheel 105 is coupled to the drive coupling 130. Accordingly, the steering wheel 105 rotates with the steering of the vehicle. The steering wheel 105 can be used by an operator to manually steer the vehicle. Additionally, the steering wheel 105 can be used to override control by the drive assembly 120.

FIG. 3 is a block diagram of aspects of a vehicle using a steering controller. The steering controller 301 may be provided by the steering controller shown in FIGS. 1 and 2. The vehicle 300 may be, for example, an agricultural tractor that uses the steering controller 301 for automatic steering as directed by a guidance module 311. The steering controller 301 can be added to the vehicle 300 and steer the vehicle via the vehicle's existing steering system. For example, the steering controller 301 may rotate a steering shaft. In the case of an agricultural vehicle, the vehicle's existing steering system is typically a hydraulic based system. The steering controller 301 and guidance module 311 operate according to the characteristics of the vehicle's steering system.

The guidance module 311 acquires position indication signals using an antenna 313. The position indication signals can use global navigation satellite system (GNSS) receivers. The antenna 313 is typically installed on the roof of the cabin of the vehicle 300. The guidance module 311 can use the position indication signals to direct the vehicle 300 to travel along a desired path. In an embodiment, the system includes multiple antennas. The guidance module 311 can, for example, acquire position indication signals signaling orientation of the vehicle. Additionally, the system can use enhanced positioning information, such as wide area augmentation system (WAAS) and real time kinematic (RTK) positioning. The guidance module 311 can also use information from other sensors, such as gyroscopes. Embodiments of the system generally operate without a sensor for the steering angle of the vehicle but can infer the steering angle from, for example, the position indication signals and status information from the steering controller 301.

Operators of the vehicle interact with the guidance module 311 using a user interface 315. The user interface 315 can include a touch screen display. Operators can, for example, select courses for the guidance module 311 to direct the vehicle 300. The user interface 315 also provides information about the guidance system to the operators. The guidance module 311 can also control or receive information from other system and devices. For example, the guidance module 311 may control operation of an agricultural implement drawn by the vehicle 300. The guidance module 311 may also interact with other devices via the vehicle's controller area network (CAN) bus. Wireless communication can also be used between the vehicle modules.

FIG. 3 illustrates a particular combination of modules and allocation of functions among the modules. Many other combinations and allocations are also available. For example, in an embodiment, all or parts of the guidance module 311 may be integrated with the steering controller 301.

FIG. 4 is a cross-section of a steering controller and FIG. 5 is an exploded view of the steering controller. The steering controller may be used as the drive assembly 120 of FIGS. 1 and 2 and as the steering controller 301 of FIG. 3. As described for the FIGS. 1 and 2, the steering controller has an enclosure or housing for mounting in a vehicle and a motor to turn the vehicle's steering. Many elements of the steering controller are symmetrical (or symmetrical except for limited variations) about a common axis. For clarity, symmetrical sides of elements are only labeled on one side of the cross-sectional view of FIG. 4.

The steering controller is largely enclosed by a front housing 141, a rear housing 142, and a shaft 146. The front housing 141 and the rear housing 142, in the shown embodiment, have shallow pan shapes with central openings. The front housing 141 and the rear housing 142 combine to form a generally cylindrical enclosure with a cylindrical opening extending from front to rear. The cylindrical opening is bounded by an inner surface of the shaft 146 which is annular shaped. The front housing 141, the rear housing 142, and the shaft 146 are fixed together as a non-rotating part of the steering controller.

The front housing 141, the rear housing 142, and the shaft 146 may be formed of aluminum. Although surfaces of the enclosure are smooth in the illustrated embodiment, other shapes may also be used. For example, the front housing 141 may have fins or flutes for improved heat dissipation. The rear housing 142 may, for example, have various tabs, slots, threaded holes, and the like for mounting to a vehicle. Additionally, the shapes may be varied for aesthetic purposes.

The front housing 141 and the rear housing 142 join near a mid-plane of the steering controller. The front housing 141 and the rear housing 142 may be secured together by mechanical fasteners. The joint is environmentally sealed by an outer O-ring 147. The outer O-ring 147 is located in a grove formed by rabbeted portions of the adjoining edges of the front housing 141 and the rear housing 142.

The rear housing 142 and the shaft 146 join at the periphery of the opening in the rear housing 142. The rear housing 142 and the shaft 146 may be secured together by mechanical fasteners, for example, bolted through shaft fastener openings 166. The joint between the rear housing 142 and the shaft 146 is environmentally sealed by an inner O-ring 148. The inner O-ring 148 is located in a grove formed in a rear surface of the shaft 146.

The steering controller includes a hub 143 for connection to a vehicle's steering shaft. The hub 143 is annular shaped and is located at the front of the cylindrical opening of the enclosure. The hub 143 may be connected to the vehicle's steering shaft via an adapter. Various adapters may be used depending on dimensions and shapes of particular steering shafts.

The hub 143 is coupled to the steering controller's motor via a donut 161. The donut 161 is annular shaped and is located around the shaft 146. In the illustrated embodiment, the donut 161 is fastened to the hub 143 by bolts through donut fastener openings 149.

The donut 161 is rotatably coupled to the shaft 146 by a front bearing 163 and a rear bearing 164. The front bearing 163 sets in a rabbeted inside edge at the front of the donut 161. The rear bearing 164 sets in a rabbeted inside edge at the rear of the donut 161. In various embodiments, the front bearing 163 and the rear bearing 164 may be the same or similar. Ball bearings may be used.

A spring ring 162 is located in a grove in the outer surface of the shaft 146 near the front. The spring ring 162 secures the position of donut 161 (and thereby the hub 143) with respect to the shaft 146 (and thus the housing). The spring ring 162 biases the front bearing 163 rearward. Rearward movement is restricted by the front bearing 163 contacting the rabbeted inside edge at the front of the donut 161, the rabbeted inside edge at the rear of the donut 161 contacting the rear bearing 164, and the rear bearing 164 contacting an inward protruding lip near the rear of the shaft 146.

The steering controller is resistant to water intrusion. Where the front housing 141 and the rear housing 142 join, the interface is sealed by the outer O-ring 147. Similarly, where the rear housing 142 and the shaft 146 join, the interface is sealed by the inner O-ring 148. The hub 143 rotates relative to the front housing 141 and the shaft 146. The interface between the hub 143 and the front housing 141 is protected by a seal 144 and a seal seat 145. The seal 144 is fixed to the hub 143. The seal seat 145 is fixed to the front housing 141. Interspersed ridges on the hub 143 and the front housing 141 create a torturous path that deters intrusion by dirt and water. A membrane may be placed between the seal 144 and the seal seat 145. The interface between the hub 143 and the shaft 146 is protected from above by the center of the steering wheel 105. The interface between the hub 143 and the shaft 146, when installed in a vehicle, is protected from below by the mounting to the vehicle. In particular, the opening in the center of the shaft 146 will be substantially filled by the steering shaft of the vehicle. Thus, water intrusion from below is also blocked.

The motor of the steering controller has a stator 151 and a rotor 153. The stator 151 is fixed to the enclosure. The outer circumference of the stator 151 may be press fit to the inside of the front housing 141. The interface between the stator 151 and the front housing 141 may include thermally conductive material to improve cooling of the motor. The stator 151 may be held in the front-rear direction by a protruding lip of the stator 151 setting against a corresponding lip on the inner surface of the front housing 141.

The rotor 153 is fixed to the donut 161. Since the donut 161 is fixed to the hub 143 and the hub 143, when installed in a vehicle, is fixed to the steering shaft of the vehicle, the motor can control steering of the vehicle. The motor can provide high torque, for example, 55 in-lb, for rapid steering adjustments. The inner circumference of the rotor 153 may be press fit to the outside of the donut 161. The rotor 153 may be held in the front-rear direction by a rear edge of the rotor 153 setting against a corresponding lip on the outer surface of the donut 161.

The motor may be considered a fractional-slot concentrated winding motor. Fractional-slot refers to the ratio of slots (and coils) to magnetic poles not being an integer. Concentrated refers to coils that span only one stator tooth. This provides a stator that is simple to wind with short end extensions thereby providing low copper weight and compact size.

The rotor 153, in the embodiment shown in FIG. 6, has twenty-four magnets 152 distributed about the periphery of the rotor. The fields of the magnets 152 extend radially and the polarities alternate between adjacent magnets. Each of the magnets 152 has a bread loaf shape. A flat surface of each of the magnets 152 attaches to the corresponding flat area of the rotor 153. The magnets 152 may be attached to the rotor 153 with adhesive. The outer surfaces of the magnets 152 have a radius sized to form a circle when attached to the rotor 153. The magnetic material may be, for example, samarium cobalt. The samarium cobalt may be grade 26HS.

The stator 151 has circumferentially distributed stator slots 150 for coil windings 156. In the embodiment shown in FIG. 7, there are twenty-seven stator slots 150. Coil windings are placed in adjacent pairs of the stator slots 150. The coil windings may be, for example, 18 gauge copper magnet wire. A temperature sensor or sensors may be included in one or more of the coil windings. In an embodiment, a resistance temperature detector (RTD) is placed in one of the coil windings and coupled to a controller module 135.

The stator 151 is formed of laminated layers. The laminated layers may be skewed (rotated) from front to rear of the stator 151. In an embodiment, the stator slots 150 are rotated by one half of one slot pitch from front to rear. Skewing the stator slots 150 can reduce cogging.

The stator 151 of FIG. 7 is for a three-phase DC brushless motor, and the coil windings are grouped in three phases. In an embodiment, the coil windings are arranged as shown in Table 1.

TABLE 1 Coil Winding Locations Coil Go Return Throw Turns Phase 1 1 1 2 1 22 2 10 9 −1 22 3 17 18 1 22 4 10 11 1 22 5 19 18 −1 22 6 26 27 1 22 7 19 20 1 22 8 1 27 −1 22 9 8 9 1 22 Phase 2 1 4 5 1 22 2 13 12 −1 22 3 20 21 1 22 4 13 14 1 22 5 22 21 −1 22 6 2 3 1 22 7 22 23 1 22 8 4 3 −1 22 9 11 12 1 22 Phase 3 1 7 8 1 22 2 16 15 −1 22 3 23 24 1 22 4 16 17 1 22 5 25 24 −1 22 6 5 6 1 22 7 25 26 1 22 8 7 6 −1 22 9 14 15 1 22

The motor is arranged to provide many advantageous features. The motor can provide very low magnetic cogging. The waveform of the generated back electromagnetic field is nearly sinusoidal. The generated waveforms from the winding include virtually no harmonics. The windings have little end extension so the physical space required is modest. The motor provides a high power density, high operating efficiency, low operating losses, and high torque.

Returning to FIGS. 4 and 5, the steering controller includes an encoder disk 171 and an angle encoder 173 for sensing position of the wheel. The encoder disk 171, in the embodiment illustrated in FIGS. 4 and 5, is fastened to the donut 161. Thus, the encoder disk 171 rotates with the hub 143 and rotor 153 and can be used to sense the angular position of the rotating components of the steering controller. The encoder disk 171 may be fastened to the donut 161 using an encoder clamp 172. The encoder clamp 172 is a flat disk and may be fastened to the donut 161 by machine screws.

The angle encoder 173 and encoder disk 171 may use an incremental quadrature code. One or more index pulses may also be provided for absolute positioning. In an embodiment, the angle encoder 173 provides 4096 codes per rotation. The encoder disk 171 may be formed with stainless steel.

The steering controller also includes a controller module 135. The controller module 135 provides control of the motor of the steering controller and interfaces to other vehicle components via a connector 134. In addition to conveying communication signals to and from the steering controller, the connector 134 can be used to supply power to the steering controller. The steering controller is operable in harsh environments. For example, the steering controller can be operated over extreme temperatures such as from −20° to 70° C. The steering controller is also resistant to intrusion by dirt and water. To provide resistance to intrusion by dirt and water, the connector 134 may be a connector rated IP67.

The controller module 135 may be in the form of a printed circuit board. In addition to components mounted on the printed circuit board, some components, for example, the motor's temperature sensor and the angle encoder 173, may be coupled to the controller module via connectors.

In an embodiment, the front housing 141 and the rear housing 142 have outer diameters of about 170 mm and a combined depth of about 70 mm. The hub 143 has an outer diameter of about 85 mm and an inner diameter of about 40 mm. The shaft 146 has an inner diameter of about 40 mm. The donut 161 has an outer diameter of about 90 mm and an inner diameter of about 60 mm. The stator 151 has an outer diameter of about 150 mm, an inner diameter of about 123 mm, and a depth of about 15 mm for the laminations and about 30 mm with windings. The rotor 153 with magnets 152 has an outer diameter of about 122 mm, an inner diameter of about 90 mm, and a depth of about 20 mm. The encoder disk 171 has an outer diameter of about 92 mm and an inner diameter of about 69 mm.

FIG. 8 is a functional block diagram of aspects of a controller module of a steering controller. The controller module of FIG. 8 may provide the controller module 135 of FIGS. 4 and 5. FIG. 8 shows the controller module 135 coupled to a motor stator 151 and an angle encoder 173. The controller module 135 communicates with other components via a guidance interface 133.

In an embodiment, the steering controller accepts a DC supply voltage. The nominal voltage level of the supply may be 12 V. The steering controller may also accept a range of voltages, for example, for 9 V to 36 V. The supply voltage may be provided via the guidance interface 133.

The controller module 135 includes a motor drive module 138 that supplies three electrical phases to the motor stator 151. The motor drive module 138 amplifies signals received from a processor module 136. The motor drive module 138 may use, for example, power transistors to drive the motor stator 151. The processor module 136 may provide low-level pulse-width modulation (PWM) sinusoidal signals to the motor drive module 138 for amplification. The processor module 136 can thus control the speed and drive strength of the motor.

The motor drive module 138 can include current sensing circuitry to measure current supplied the motor stator 151. The processor module 136 may use the current measurement to control and limit the current. The motor drive module 138 can include current limiting circuitry to impose limits on the current supplied the motor stator 151. The current may be limited to different magnitudes depending on duration, for example, the current may be limited to 10 A continuous and 20 A for two seconds.

The processor module 136 receives angular position information from the angle encoder 173. The processor module 136 can use the angular position information to determine how to move the steering to a desired position. The processor module 136 provides a high-speed control loop. In an embodiment, the closed-loop response is about 50 Hz. Furthermore, the steering controller may rotate at speeds of about 100 revolutions per minute.

The angular position information may also be used to time the commutation of the motor phases. The processor module 136 can use an initial rotation of the rotor to learn the commutation sequence. For example, the operator can be instructed to turn the steering wheel (and thereby the rotor) before operation of the steering controller begins.

The processor module 136 is coupled to the guidance interface 133 via an interface module 137. In various embodiments, the interface module 137 provides communication on the guidance interface 133 using one or more protocols such as controller area network (CAN) bus, Ethernet, NMEA 0183, and RS-232. The interface module 137 may provide opto-isolation for some interface signals. The controller module 135 may receive auxiliary inputs and produce auxiliary outputs. The auxiliary signals may be analog or digital. The auxiliary signals may be coupled to the controller module 135 via the guidance interface 133 or a separate interface.

The controller module 135 includes a monitor module 139. The monitor module 139 can limit the torque applied by the motor of the steering controller. Limiting the torque allows a vehicle operator to physically override the steering controller. An externally applied torque can be sensed and when greater than a threshold, the steering controller disabled. When the externally applied torque is from a vehicle operator, sensing the torque allows the steering controller to be disabled without the operator activating a separate switch mechanism.

The monitor module 139, in an embodiment, provides an integrated motor power switch. The monitor module 139 may supply power to the motor drive module 138 for driving the motor. The monitor module 139 can include relays to enable or disable the power supply to the motor drive module 138. An embodiment of the monitor module 139 may include two series relays in the power path to the motor drive module 138. One of the relays can be controlled by the processor module 136. Another of the relays can be opened based on the current supplied. For example, the relay may open with current is greater than threshold. This can provide hardware protection against faults.

The processor module 136 can receive a temperature signal from the motor stator 151. The temperature can be compared to a limit and the steering controller disabled if the limit is exceeded. The temperature may also be used in setting the stator phase currents. For example, the currents may be reduced when the temperature nears a high threshold value.

The controller module 135 can receive various commands via the connector 134. Execution of the various commands requires little time, for example, less than 1 ms. One command that may be received by the steering controller is a velocity control (VC) command. The VC command starts wheel motion in the velocity control mode. The VC command includes a parameter or parameters to signal the direction of rotation and the speed. The VC command may specify a velocity of zero to command the wheel to stop turning and hold the current position.

Another command that may be received by the steering controller is a position control (PC) command. The PC command moves the wheel to a new position specified in the command in a position control mode. The velocity at which the wheel moves to the new position may be limited by a maximum velocity. The maximum velocity may be, for example, specified by the PC command as a parameter or separately set. The position may be specified in counts of the angle encoder. The position can be relative to a zero setting that indicates a generally neutral steering position.

Another command that may be received by the steering controller is an engage wheel (EW) command. The EW command can be used to enable or disable control of vehicle steering by the steering controller. When the EW command disables control by the steering controller, the steering controller may stop motion of the wheel before disabling control.

Another command that may be received by the steering controller is a current limit (CL) command. The CL command can set a local current limit. If current in the motor exceeds the local current limit, the steering controller can be disabled.

Another command that may be received by the steering controller is a wheel velocity (WV) command. The WV command sets a local maximum velocity. The local maximum velocity may limit wheel velocity in both velocity and position control commands.

Another command that may be received by the steering controller is a zero position (ZP) command. The ZP command sets a current position of the wheel as a zero setting. The zero setting can be used in specifying position of the wheel, for example, by the PC command.

The steering controller may also receive commands that query for status information from the steering controller. One query command that may be received by the steering controller is a query motor current (QC) command. The steering controller responds to the QC command with the current motor current. The current motor current may be a value in amps that is determined from measured stator phase currents.

Another query command that may be received by the steering controller is a query motor torque (QT) command. The steering controller responds to the QT command with the current motor torque. The current motor torque may be a value measured in Nm that is calculated from the electrical drive supplied to the motor.

Another query command that may be received by the steering controller is a query supply voltage (QV) command. The steering controller responds to the QV command with the current supply voltage.

Another query command that may be received by the steering controller is a query motor power (QW) command. The steering controller responds to the QW command with the current motor power. The current motor power may be a value measured in watts that is calculated from motor drive levels or measured directly.

Another query command that may be received by the steering controller is a query inverter temperature (QK) command. The steering controller may respond to the QK command with the current temperature of the coil windings measured in kelvin.

Another query command that may be received by the steering controller is a query engage/disengage status (QE) command. The steering controller may respond to the QE command with the current status of whether the steering control is engaged or disengaged.

Another query command that may be received by the steering controller is a query current position (QP) command. The steering controller may respond to the QP command with the current position of the wheel as measured using the angle encoder.

FIG. 9 is a perspective view of a paddle shifter assembly. FIG. 10 is a side view of the paddle shifter assembly of FIG. 9 with the steering controller of FIG. 1. The paddle shifter assembly includes a left paddle 191 and a right paddle 192. The left paddle 191 is coupled to a left arm 197 by a hinge; the right paddle 192 is coupled to a right arm 198 by a hinge. The left arm 197 and right arm 198 extend from a base plate 195.

As shown in FIG. 10, paddle shifter assembly is sized for mounting to the rear of the drive assembly 120. The left paddle 191 and right paddle 192 are positioned near the steering wheel 105. An operator can actuate the paddles without taking her hands from the steering wheel 105.

The left paddle 191 and right paddle 192 may activate switches when moved towards the steering wheel 105. The status of the switches can be coupled, for example, to the controller in the drive assembly 120. The paddles can signal various operations, such as shifting gears or changing speeds. The paddles can also signal turns, for example, turning at the end of a row in an agricultural application or tacking to port or starboard in a sailboat application.

Those of skill will appreciate that various illustrative logical blocks, modules, units, and algorithm steps described in connection with the embodiments disclosed herein can often be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular constraints imposed on the overall system. Skilled persons can implement the described functionality in varying ways for each particular system, but such implementation decisions should not be interpreted as causing a departure from the scope of the invention. In addition, the grouping of functions within a unit, module, block, or step is for ease of description. Specific functions or steps can be moved from one unit, module, or block without departing from the invention.

Various illustrative logical blocks, units, steps and modules described in connection with the embodiments disclosed herein can be implemented or performed with a processor, such as a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but in the alternative, the processor can be any processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

The steps of a method or algorithm and the processes of a block or module described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium. An exemplary storage medium can be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The processor and the storage medium can reside in an ASIC.

A specific example of such a method is represented by FIG. 11. Several steps are outlined in FIG. 11 and below which explain how the present invention would be practiced while incorporating a preferred software algorithm for detecting when the wheel is grabbed by the human driver, and thereafter disengaging the steering system.

Effectively, at all times while the motor is engaged and actively controlling the steering of the vehicle, an internal “Override Algorithm” is employed to detect for manual steering by the vehicle's human driver. This algorithm is continuously run to examine the torque level generated by the motor. The algorithm is also designed to compare the achieved instantaneous motor velocity in revolutions per minute (RPM) with the most recent instructed motor velocity. Thus, in the example below, velocity always refers to the motor velocity in RPM.

The system includes four programmable parameters which are used by the Override Algorithm. Each of these is communicated and programmable via an external communications interface, such as a connected computer.

The first programmable parameter is the VELOCITY_ERROR_COUNT_THRESHOLD_LIMIT, which is the current minimum velocity error count threshold. The second programmable parameter is the VELOCITY_ERROR_COUNT_THRESHOLD, which is the current velocity error count threshold. The third programmable parameter is the RPM_Percentage, which is a percentage RPM multiplier. The final programmable parameter is the TORQUE_THRESHOLD, which is a percentage torque threshold. These programmable parameters may be re-programmed at any time, except for when the motor is engaged in active steering activity.

A preferred example of the algorithmic logic is:

ManualSteeringOverrideDetection( ) {  override_indication = false  rpm_error_magnitude_threshold = abs(latest_commanded_velocity_rpm * (RPM_PERCENTAGE / 100.0))  IF (rpm_error_magnitude_threshold < VELOCITY_ERROR_COUNT_THRESHOLD_LIMIT)  {   rpm_error_magnitude_threshold =   VELOCITY_ERROR_COUNT_THRESHOLD_LIMIT  }  current_rpm_error = abs(latest_commanded_velocity_rpm − latest_motor_reported_velocity_rpm)  IF ((current_rpm_error >= rpm_error_magnitude_threshold) AND   (abs(motor_reported_torque_percent) >=   TORQUE_THRESHOLD))  {   number_of_consecutive_significant_rpm_errors = number_of_consecutive_significant_rpm_errors + 1   IF (number_of_consecutive_significant_rpm_errors >= VELOCITY_ERROR_COUNT_THRESHOLD)   {    override_indication = true   }  }  ELSE  {   number_of_consecutive_significant_rpm_errors = 0  }  return override_indication }

Referring back to FIG. 11, the process starts at 200 and the vehicle is powered on at 202, immediately after which the steering controller is powered on and activated at 204. Initially, the vehicle will be manually steered at 206, until such a point in which the driver determines to activate the automatic steering system.

As explained above, the user will be allowed to adjust the parameters at 208 at any time before the motor is engaged or after the motor is disengaged. If the user elects to adjust parameters at 208, then the various parameters may be adjusted at 210, 214, 218, or 222, and the corresponding settings made at 212, 216, 220, and 224. After the adjustments are made, or if no adjustments are made, the user may select to engage the motor at any time at 226.

If the motor is not engaged at 226, manual steering continues at 206 and the option to adjust parameters is available at 208. If the user does elect to engage the motor at 226, then the motor engages at 228 and the vehicle is automatically steered at 230. The system constantly checks for torque at 232, which would indicate that the user had grabbed the steering wheel. If torque is detected at 232, then the motor is disengaged at 234, manual steering of the vehicle occurs at 236, and that round of automatic steering ends at 238.

The parameters would optionally be adjusted to account for the terrain. In rough terrain where rocks or other obstacles may cause torque against the steering motor the thresholds and limits of the parameters would likely be set higher to account for the terrain.

The above description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles described herein can be applied to other embodiments without departing from the spirit or scope of the invention. Thus, it is to be understood that the description and drawings presented herein represent a presently preferred embodiment of the invention and are therefore representative of the subject matter that is broadly contemplated by the present invention. It is further understood that the scope of the present invention fully encompasses other embodiments that may become obvious to those skilled in the art and that the scope of the present invention is accordingly limited by nothing other than the appended claims. 

Having thus described the invention, what is claimed as new and desired to be secured by Letters Patent is:
 1. A computer-implemented method of controlling a steering system of a vehicle, the method comprising the steps: setting a plurality of programmable parameters of a steering controller, said steering controller comprising a processor, a processor module, a storage medium, and software comprising an override algorithm; receiving instructions to engage automatic steering controls with said steering controller; instructing a steering assembly to engage, thereby taking control of steering system of the vehicle; wherein said steering assembly comprises: a housing having a cylindrical opening extending from a front surface of the housing to a rear surface of the housing, the cylindrical opening lined by a shaft; a donut having an annular shape, the donut disposed around and rotatably coupled to the shaft; a hub disposed concentrically with the cylindrical opening proximate the front surface of the housing and fixedly coupled to the donut, the hub arranged for coupling to a steering shaft of the vehicle; a motor comprising a stator fixedly coupled to the housing and a rotor fixedly coupled to the donut, the motor comprising a three-phase brushless DC motor, and the controller module being arranged to determine a commutation sequence of the motor by sensing an operator's rotation of the hub; a control module arranged to drive the motor based on commands from said steering controller, the control module comprising a monitor module configured to limit torque applied by the motor between the hub and the housing; the monitor module is further configured to sense torque of the hub applied by an operator of the vehicle and disengage the steering controller from controlling steering of the vehicle when the magnitude of the torque exceeds a torque threshold; the control module is operable in a velocity control mode that causes the motor to rotate the hub relative to the housing at a desired angular velocity; the control module is further operable in a position control mode that causes the motor to rotate the hub relative to the housing to a desired angular position; a seal seat having an annular shape and disposed at an opening in the front surface of the housing and seal having an annular shape and disposed about the hub and adjacent the seal seat, the seal seat and seal having interspersed ridges arranged to deter intrusion of foreign matter into the steering controller; and a front bearing and a rear bearing, wherein the donut is rotatably coupled to the shaft via the front bearing and the rear bearing, wherein the front bearing is disposed at a rabbet at the front edge of the donut and the rear bearing is disposed at a rabbet at the rear edge of the donut; steering said vehicle with said steering assembly based upon commands received from said steering controller; monitoring torque of the hub with said monitor module; signaling said steering controller with said monitor module that torque of the hub exceeds said torque threshold; and automatically disengaging automatic steering of said steering assembly.
 2. The method of claim 1, wherein said plurality of programmable parameters is selected from the list comprising: a Velocity Error Count Threshold Limit parameter, a Velocity Error Count Threshold parameter, an RPM Percentage parameter, and a Torque Threshold parameter.
 3. The method of claim 2, further comprising the steps: adjusting said torque threshold based upon said torque threshold parameter.
 4. The method of claim 2, further comprising the steps: associating said programmable parameters with said override algorithm; and disengaging said steering system based upon a determination according to override algorithm.
 5. The method of claim 4, wherein: said algorithm tests for an override indication; said algorithm establishes an rpm error magnitude threshold as equal to the absolute value of a latest command velocity rpm multiplied by said RPM Percentage parameter value divided by 100; said algorithm checks if the rpm error magnitude threshold is greater than the velocity error count threshold limit parameter, and if it is then it sets the rpm error magnitude threshold equal to the velocity error count threshold limit parameter; said algorithm establishes a current rpm error as equal to the absolute value of a latest commanded velocity rpm minus a latest motor reported velocity rpm; said algorithm checks if a current rpm error is greater than or equal to said rpm error magnitude threshold and if the absolute value of a motor reported torque percent is greater than or equal to said torque threshold parameter, and if they are then a parameter associated with a number of consecutive significant rpm errors is increased by a value of one; said algorithm checks if said number of consecutive significant rpm errors is greater than or equal to said velocity error count threshold parameter, and if it is then the override indication is set to true and said steering assembly is disengaged; and wherein if said number of consecutive significant rpm errors is less than said velocity error count threshold, then said number of consecutive significant rpm errors is set to equal zero.
 6. The method of claim 1, further comprising the steps: wherein said steering assembly includes a paddle shifter assembly removably mounted to said drive assembly, said paddle shifter assembly including a first paddle and a second paddle, each coupled to a respective first arm and second arm via a respective first hinge and second hinge, wherein each of said first and second arms extend from a baseplate of said paddle shifter assembly; and wherein said paddle shifter assembly configured to activate one or more switches in electronic communication with said steering controller, wherein said one or more switches are paired with one or more actions associated with functions capable of being performed by said vehicle. 